package com.yungu.swift.system.sys.dao;


import com.yungu.swift.base.mapper.IMapper;
import com.yungu.swift.system.sys.model.dto.SysCityDto;
import com.yungu.swift.system.sys.model.vo.CityVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 城市信息Mapper
 *
 * @author Zerrion
 * @version 1.0.0-RELEASE
 * @since 2018-07-02 11:19
 */
public interface SysCityMapper extends IMapper<SysCityDto> {

    /**
     * 根据城市名称得到 cityUuid
     *
     * @param city 城市名
     * @return String
     */
    String getCityUuidByName(@Param("city") String city);

    /**
     * 获得开通城市
     *
     * @param params Map Map
     * @return List<SysCityDto>
     */
    List<SysCityDto> getOpenCities(Map<String, Object> params);

    /**
     * 根据区域代码获取城市uuid
     *
     * @param adCode String
     * @return String
     */
    String getCityUuidByAdCode(@Param("adCode") String adCode);

    /**
     * 根据传入城市编号查找出最后一个重复的编号 如BD查询出BD2
     *
     * @param cityNo String
     * @return String
     */
    String getMaxCityNo(@Param("cityNo") String cityNo);

    /**
     * 根据城市id查出城市名并用逗号拼接
     *
     * @param cityUuids List
     * @return String
     */
    String getCityNames(@Param("cityUuids") List<String> cityUuids);

    /**
     * 获取业务开通城市
     *
     * @param map Map
     * @return List<CityVo>
     */
    List<CityVo> findCityByBusinessType(Map<String, Object> map);


    /**
     * 业务uuid 和 adcode 查询城市 uuid
     *
     * @param map
     * @return
     */
    String getCityUuidByMap(Map<String, Object> map);
}